% !Mode:: "TeX:UTF-8"

\chapter{需求规格说明}

\section{背景}
本项目是参照“饿了么”平台，开发一个基于 SpringCloud + Vue 前后端分离
的外卖点餐平台。该平台能够提供购买商品、订单管理
等外卖平台常用功能，能够完成一套完整的网上订餐流
程。
\section{目标与涉众分析}
根据不同涉众的具体需求，开发出能够满足其业务要求和操作习惯的软件实用功能，确保功能设计既具有针对性，又具备广泛的适用性，从而提高工作效率，优化用户体验，并支持后续的系统扩展和维护。
\subsection{目标}
\begin{itemize}
\item{实现商品展示和购买功能。}
\item{实现订单管理功能。}
\item{实现用户注册、登陆功能。}
\item{实现虚拟钱包、积分系统功能。}
\end{itemize}
\subsection{涉众分析}
\begin{table}[htbp]
\caption{涉众分析表}\label{tab:table1}
\vspace{0.5em}\centering\wuhao
\begin{tabularx}{\textwidth}{llX}
\toprule[1.5pt]
序号 & 涉众 & 待解决的问题/对系统的期望\\
\midrule[1pt]
1 & 顾客 & 能够方便的进行商品浏览；能够暂时将喜欢的商品放入购物车；能够进行账户的注册、登录、修改密码等；能够管理账户的基本信息、历史订单、收货地址等；能够正常的支付。\\
2 & 商家 & 能够管理商品信息，例如修改或增加商品价格，商品图片等；能够管理店铺信息，例如商家地址、查看流水等；能够设置起送费以及配送费的金额。\\
\bottomrule[1.5pt]
\end{tabularx}
\vspace{\baselineskip}
\end{table}
\subsection{范围}
\begin{itemize}
    \item{用户注册与登录}
    \item{用户信息管理}
    \item{包括地址管理}
    \item{商家浏览}
    \item{食品浏览与选购}
    \item{管理购物车}
    \item{订单创建与管理}
    \item{历史订单查询}
\end{itemize}
\section{业务概念分析}
本系统要管理的事情主要有：外卖下单业务，订单管理，购物车管理，商品管理。
\subsection{业务概念一览}
\begin{figure}[h]
    \centering
    \includegraphics[width=1.2\textwidth]{Classes}
    \caption{业务类图}\label{fig:Classes}
    \vspace{\baselineskip}
\end{figure}
\clearpage
\section{业务流程分析}
本项目涉及的业务流程主要包括用户账户、用户配送地址、用户购物车管理、用户点餐等方面。下面将对这些业务流程进行详细的分析。
\subsection{用户注册}
\begin{figure}[h]
    \centering
    \includegraphics[width=1\textwidth]{Register}
    \caption{用户注册流程图}\label{fig:Register}
    \vspace{\baselineskip}
\end{figure}
\subsection{用户登录}
\begin{figure}[h]
    \centering
    \includegraphics[width=1\textwidth]{Login}
    \caption{用户登录流程图}\label{fig:Login}
    \vspace{\baselineskip}
\end{figure}
\clearpage
\subsection{用户管理地址}
\begin{figure}[h]
    \centering
    \includegraphics[width=0.95\textwidth]{Address}
    \caption{用户管理地址流程图}\label{fig:Address}
    \vspace{\baselineskip}
\end{figure}
\clearpage
\subsection{用户点餐}
\begin{figure}[h]
    \centering
    \includegraphics[width=0.38\textwidth]{Orders}
    \caption{用户点餐流程图}\label{fig:Orders}
    \vspace{\baselineskip}
\end{figure}
\clearpage
\section{功能性需求}
\subsection{总用例图}
\begin{figure}[h]
    \centering
    \includegraphics[width=1\textwidth]{user-admin}
    \caption{总用例图}\label{fig:user-admin}
    \vspace{\baselineskip}
\end{figure}
\clearpage
\subsection{顾客的用例}
\begin{figure}[h]
    \centering
    \includegraphics[width=0.85\textwidth]{costomer}
    \caption{顾客的用例图}\label{fig:costomer}
    \vspace{\baselineskip}
\end{figure}
以下给出具体的顾客用例表
\begin{table}[h]
    \caption{顾客用例表}\label{tab:costomer1}
    \vspace{0.5em}\centering\wuhao
    \begin{tabularx}{\textwidth}{m{0.8cm}<{\centering} m{0.8cm}<{\centering} m{1.2cm}<{\centering} m{1.2cm}<{\centering} m{1.2cm}<{\centering} m{1cm}<{\centering} m{1.5cm}<{\centering} m{1.6cm}<{\centering} m{1.5cm}<{\centering}}
    \toprule[1.5pt]
    编号 & 名称 & 执行者 & 优先级 & 描述 & 前置条件 & 基本流程 & 结束状况 & 说明\\
    \midrule[1pt]
    1 & 注册账号 & 顾客 & 高 & 用户首次进入该系统，注册用户信息 
    & 无 & 1.开始注册;2.用户提交注册信息;3.显示注册结果 
    & 返回用户最终的注册结果，保存用户信息 
    & 用户提交的信息应该包括：用户名、密码、性别等信息\\
    \midrule[1pt]
    2 & 登录账号 & 顾客 & 高 & 用户登录已有的账号 
    & 用户已经注册过账号 & 1.用户输入用户名、密码;2.系统给予反馈     
    & 1.用户成功登录;2.用户提供的用户名或密码错误
    & 无\\
    \midrule[1pt]
    3 & 修改地址 & 顾客 & 低 & 用户提供地址来接收外卖，可以修改 
    & 用户成功登录 & 1.显示正在修改地址;2.提交新地址;3.反馈修改结果         
    & 将数据库中的用户地址修改成对应结果
    & 无\\
    \midrule[1pt]
    4 & 查看菜单 & 顾客 & 低 & 用户查看商家及商家对应菜单 
    & 无 & 1.显示所选商家所有菜品或者提示无商品     
    & 系统的数据不会发生任何变化
    & 无\\
    \midrule[1pt]
    5 & 下订单 & 顾客 & 高 & 用户挑选菜品下单 
    & 无 & 1.用户挑选菜品加入购物车;2.用户提交订单;3.跳转到支付界面;4.系统保存订单信息         
    & 数据库中新增一条订单记录
    & 无\\
    \bottomrule[1.5pt]
    \end{tabularx}
    \vspace{\baselineskip}
\end{table}
\clearpage
\section{非功能性需求}
\subsection{系统架构要求}
\begin{figure}[h]
    \centering
    \includegraphics[width=0.85\textwidth]{system}
    \caption{系统架构图}\label{fig:system}
    \vspace{\baselineskip}
\end{figure}
\subsection{安全性}
\begin{itemize}
    \item{用户数据加密保护，保证数据在采集、传输、处理过程中不被偷窥、窃取、篡改。}
    \item{数据经加密处理后进行存储。}
    \item{加强隐私数据保护。}
\end{itemize}

\subsection{性能}
\begin{enumerate}
    \item 响应时间
    \begin{enumerate}
    \item 页面间跳转时间小于等于3s,精确搜索反馈结果小于等于1s。
    \item 对于大数据量加载，分页展示，提供进度条及预计时间，减少用户焦虑。
    \end{enumerate}

    \item 吞吐量
    \begin{enumerate}
        \item 与系统并发相关，根据业务量估算系统需要支持多少并发。
    \end{enumerate}

    \item 资源利用率
    \begin{enumerate}
        \item 投入资源的使用率需要达到一定的水平，避免资源浪费。
    \end{enumerate}
\end{enumerate}

\subsection{界面}
\begin{itemize}
    \item 统一风格，同一项目或范围内系统风格、布局保持一致。 
    \item 使用户易操作。
    \item 符合基本的软件设计规范。
    \item 充分考虑视觉因素，界面美观，用户使用具有舒适性，避免使用刺激性的配色。
\end{itemize}
\clearpage